# encoding: utf-8

import cgi
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
import svrutil

## 用户信息,KEY为用户名
class entity_user(db.Model):
	pwd=db.StringProperty()
	power=db.IntegerProperty()

class reset_password(webapp.RequestHandler):
	def post(self):
		## 重置密码
		svrutil.response_begin(self.response)
		user=cgi.escape(self.request.get('user'))
		oldpwd=cgi.escape(self.request.get('oldpwd'))
		newpwd=cgi.escape(self.request.get('newpwd'))
		if not user:
			self.response.out.write('请输入用户名')
			svrutil.response_end(self.response)
			return
		obj=db.get(db.Key.from_path('entity_user',user))
		if obj is None:
			query=entity_user.all()
			if query.count()>0:
				self.response.out.write('用户名或密码错误')
				svrutil.response_end(self.response)
				return
			## 首个用户作为为管理员
			obj=entity_user(key_name=user,pwd=newpwd,power=1)
			k=obj.put()
			self.response.out.write('创建新用户成功')
			svrutil.response_end(self.response)
			return
		if obj.pwd and obj.pwd.encode('utf8')!=oldpwd:
			self.response.out.write('用户名或密码错误')
			svrutil.response_end(self.response)
			return
		obj.pwd=newpwd
		obj.put()
		self.response.out.write('密码修改成功')
		svrutil.response_end(self.response)

def verify_user(user,pwd):
	## 验证用户身份
	obj=db.get(db.Key.from_path('entity_user',user))
	if obj is None:
		return False
	if obj.pwd and obj.pwd.encode('utf8')!=pwd:
		return False
	return True

app=webapp.WSGIApplication([('/password',reset_password),])

if __name__=='__main__':
	run_wsgi_app(app)
